package com.design.SingletonMode;

/**
 * 双重检测 推荐
 * 饿汉式不支持延迟加载，消耗资源，懒汉式存在性能问题
 */
public class Mode3 {

    private Mode3(){}

    private volatile static Mode3 mode3;

    public static Mode3 getInstance(){
        if(null == mode3){
            // 加锁的对象，锁对象使用不当将无效果
            synchronized (Mode3.class){
                if(null == mode3){
                    return new Mode3();
                }
            }
        }
        return mode3;
    }

}
